API: Remove gtk_cairo_should_draw_window()
authorBenjamin Otte <otte@redhat.com>
Tue, 22 Nov 2016 18:31:03 +0000 (19:31 +0100)
committerBenjamin Otte <lvs@localhost.localdomain>
Wed, 23 Nov 2016 17:48:38 +0000 (18:48 +0100)
The answer is: Yes.

17 files changed:
docs/reference/gtk/gtk4-sections.txt
gtk/gtkcalendar.c
gtk/gtkcontainer.c
gtk/gtkiconview.c
gtk/gtklayout.c
gtk/gtkmenu.c
gtk/gtknotebook.c
gtk/gtkpaned.c
gtk/gtkrevealer.c
gtk/gtkscrolledwindow.c
gtk/gtkstack.c
gtk/gtktextview.c
gtk/gtktreeview.c
gtk/gtkviewport.c
gtk/gtkwidget.c
gtk/gtkwidget.h
tests/testgtk.c

index e012a12a755e030aea0a96d84a8931422f49b59b..6373ee343a95bc998d59d62dac04e1c4ee775426 100644 (file)
@@ -4598,7 +4598,6 @@ gtk_widget_trigger_tooltip_query
 gtk_widget_get_window
 gtk_widget_register_window
 gtk_widget_unregister_window
-gtk_cairo_should_draw_window
 gtk_cairo_transform_to_window
 gtk_widget_get_allocated_width
 gtk_widget_get_allocated_height
index 24f34a34ca662fcdb4de3d1f7a0ce9e2f5b3b887..e8cdc6d6f423987546f00f33d0174a07a062490a 100644 (file)
@@ -2742,26 +2742,22 @@ gtk_calendar_draw (GtkWidget *widget,
 {
   GtkCalendar *calendar = GTK_CALENDAR (widget);
   GtkCalendarPrivate *priv = calendar->priv;
+  GtkStyleContext *context;
   int i;
 
-  if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)))
-    {
-      GtkStyleContext *context;
-
-      context = gtk_widget_get_style_context (widget);
+  context = gtk_widget_get_style_context (widget);
 
-      gtk_style_context_save (context);
-      gtk_style_context_add_class (context, GTK_STYLE_CLASS_VIEW);
+  gtk_style_context_save (context);
+  gtk_style_context_add_class (context, GTK_STYLE_CLASS_VIEW);
 
-      gtk_render_background (context, cr, 0, 0,
-                             gtk_widget_get_allocated_width (widget),
-                             gtk_widget_get_allocated_height (widget));
-      gtk_render_frame (context, cr, 0, 0,
-                        gtk_widget_get_allocated_width (widget),
-                        gtk_widget_get_allocated_height (widget));
+  gtk_render_background (context, cr, 0, 0,
+                         gtk_widget_get_allocated_width (widget),
+                         gtk_widget_get_allocated_height (widget));
+  gtk_render_frame (context, cr, 0, 0,
+                    gtk_widget_get_allocated_width (widget),
+                    gtk_widget_get_allocated_height (widget));
 
-      gtk_style_context_restore (context);
-    }
+  gtk_style_context_restore (context);
 
   calendar_paint_main (calendar, cr);
 
index 767cc5ae31661b886d24b8234df193b2f6b17895..928d95ecf694aac024552f584cc817e8abc9089f 100644 (file)
@@ -3147,21 +3147,9 @@ gtk_container_should_propagate_draw (GtkContainer   *container,
                                      GtkWidget      *child,
                                      cairo_t        *cr)
 {
-  GdkWindow *child_in_window;
-
   if (!_gtk_widget_is_drawable (child))
     return FALSE;
 
-  /* Never propagate to a child window when exposing a window
-   * that is not the one the child widget is in.
-   */
-  if (_gtk_widget_get_has_window (child))
-    child_in_window = gdk_window_get_parent (_gtk_widget_get_window (child));
-  else
-    child_in_window = _gtk_widget_get_window (child);
-  if (!gtk_cairo_should_draw_window (cr, child_in_window))
-    return FALSE;
-
   return TRUE;
 }
 
index 82ca12716c1b1f4604fd7b93d2fd6044ca0f1d09..84b77e032aebdb6b6649158ae5e540b49c239b0e 100644 (file)
@@ -1757,9 +1757,6 @@ gtk_icon_view_draw (GtkWidget *widget,
                          gtk_widget_get_allocated_width (widget),
                          gtk_widget_get_allocated_height (widget));
 
-  if (!gtk_cairo_should_draw_window (cr, icon_view->priv->bin_window))
-    return FALSE;
-
   cairo_save (cr);
 
   gtk_cairo_transform_to_window (cr, widget, icon_view->priv->bin_window);
index 28b72d00ad9aa6a185df4b888217144d4fc84d64..f505278ecfffcfbced999fb5ca475d15181de70e 100644 (file)
@@ -132,8 +132,6 @@ static void gtk_layout_measure (GtkWidget *widget,
                                 int            *natural_baseline);
 static void gtk_layout_size_allocate      (GtkWidget      *widget,
                                            GtkAllocation  *allocation);
-static gint gtk_layout_draw               (GtkWidget      *widget,
-                                           cairo_t        *cr);
 static void gtk_layout_add                (GtkContainer   *container,
                                           GtkWidget      *widget);
 static void gtk_layout_remove             (GtkContainer   *container,
@@ -603,7 +601,6 @@ gtk_layout_class_init (GtkLayoutClass *class)
   widget_class->map = gtk_layout_map;
   widget_class->measure = gtk_layout_measure;
   widget_class->size_allocate = gtk_layout_size_allocate;
-  widget_class->draw = gtk_layout_draw;
 
   container_class->add = gtk_layout_add;
   container_class->remove = gtk_layout_remove;
@@ -899,19 +896,6 @@ gtk_layout_size_allocate (GtkWidget     *widget,
   gtk_layout_set_vadjustment_values (layout);
 }
 
-static gboolean
-gtk_layout_draw (GtkWidget *widget,
-                 cairo_t   *cr)
-{
-  GtkLayout *layout = GTK_LAYOUT (widget);
-  GtkLayoutPrivate *priv = layout->priv;
-
-  if (gtk_cairo_should_draw_window (cr, priv->bin_window))
-    GTK_WIDGET_CLASS (gtk_layout_parent_class)->draw (widget, cr);
-
-  return FALSE;
-}
-
 /* Container methods
  */
 static void
index 3a569f2cdf5dbaafcfcb346217086d0e50be24d8..7839098371e61865f876c1d198b71ffed98f6b10 100644 (file)
@@ -2927,6 +2927,7 @@ gtk_menu_draw (GtkWidget *widget,
   GtkMenuPrivate *priv;
   GtkStyleContext *context;
   GtkAllocation allocation;
+  int x, y;
 
   menu = GTK_MENU (widget);
   priv = menu->priv;
@@ -2934,34 +2935,26 @@ gtk_menu_draw (GtkWidget *widget,
 
   gtk_widget_get_allocation (widget, &allocation);
 
-  if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)))
-    {
-      gtk_render_background (context, cr, 0, 0,
-                             allocation.width, allocation.height);
-      gtk_render_frame (context, cr, 0, 0,
-                        allocation.width, allocation.height);
-
-      if (priv->upper_arrow_visible)
-        gtk_css_gadget_draw (priv->top_arrow_gadget, cr);
+  gtk_render_background (context, cr, 0, 0,
+                         allocation.width, allocation.height);
+  gtk_render_frame (context, cr, 0, 0,
+                    allocation.width, allocation.height);
 
-      if (priv->lower_arrow_visible)
-        gtk_css_gadget_draw (priv->bottom_arrow_gadget, cr);
-    }
+  if (priv->upper_arrow_visible)
+    gtk_css_gadget_draw (priv->top_arrow_gadget, cr);
 
-  if (gtk_cairo_should_draw_window (cr, priv->bin_window))
-    {
-      int x, y;
+  if (priv->lower_arrow_visible)
+    gtk_css_gadget_draw (priv->bottom_arrow_gadget, cr);
 
-      gdk_window_get_position (priv->view_window, &x, &y);
+  gdk_window_get_position (priv->view_window, &x, &y);
 
-      cairo_rectangle (cr,
-                       x - allocation.x, y - allocation.y,
-                       gdk_window_get_width (priv->view_window),
-                       gdk_window_get_height (priv->view_window));
-      cairo_clip (cr);
+  cairo_rectangle (cr,
+                   x - allocation.x, y - allocation.y,
+                   gdk_window_get_width (priv->view_window),
+                   gdk_window_get_height (priv->view_window));
+  cairo_clip (cr);
 
-      GTK_WIDGET_CLASS (gtk_menu_parent_class)->draw (widget, cr);
-    }
+  GTK_WIDGET_CLASS (gtk_menu_parent_class)->draw (widget, cr);
 
   return FALSE;
 }
index 5f0144fdbc2460026177b4b0e8c3f5cd4fe8fa0c..02939bb802a3d87c70f2345f2260db46bab53134 100644 (file)
@@ -2381,11 +2381,9 @@ gtk_notebook_draw (GtkWidget *widget,
   GtkNotebook *notebook = GTK_NOTEBOOK (widget);
   GtkNotebookPrivate *priv = notebook->priv;
 
-  if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)))
-    gtk_css_gadget_draw (priv->gadget, cr);
+  gtk_css_gadget_draw (priv->gadget, cr);
 
-  if (priv->operation == DRAG_OPERATION_REORDER &&
-      gtk_cairo_should_draw_window (cr, priv->drag_window))
+  if (priv->operation == DRAG_OPERATION_REORDER)
     gtk_css_gadget_draw (priv->cur_page->gadget, cr);
 
   return FALSE;
index a8c5db8c200061b5d845ef3adc1e83986c5007fc..1fadaf578f7b9dfc7113f175290b3419638652f4 100644 (file)
@@ -1665,8 +1665,7 @@ gtk_paned_render (GtkCssGadget *gadget,
   int window_x, window_y;
 
   gtk_widget_get_allocation (widget, &widget_allocation);
-  if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)) &&
-      priv->child1 && gtk_widget_get_visible (priv->child1) &&
+  if (priv->child1 && gtk_widget_get_visible (priv->child1) &&
       priv->child2 && gtk_widget_get_visible (priv->child2))
     gtk_css_gadget_draw (priv->handle_gadget, cr);
 
index ae4f14164b8fddc02f9c26c53dd9941ba8314392..c9e76938246cfe6aff36fd9af0d5276cb1d7e379 100644 (file)
@@ -100,8 +100,6 @@ static void     gtk_revealer_real_size_allocate                  (GtkWidget
                                                                   GtkAllocation *allocation);
 static void     gtk_revealer_real_map                            (GtkWidget     *widget);
 static void     gtk_revealer_real_unmap                          (GtkWidget     *widget);
-static gboolean gtk_revealer_real_draw                           (GtkWidget     *widget,
-                                                                  cairo_t       *cr);
 static void gtk_revealer_measure (GtkWidget      *widget,
                                   GtkOrientation  orientation,
                                   int             for_size,
@@ -220,7 +218,6 @@ gtk_revealer_class_init (GtkRevealerClass *klass)
   widget_class->size_allocate = gtk_revealer_real_size_allocate;
   widget_class->map = gtk_revealer_real_map;
   widget_class->unmap = gtk_revealer_real_unmap;
-  widget_class->draw = gtk_revealer_real_draw;
   widget_class->measure = gtk_revealer_measure;
 
   container_class->add = gtk_revealer_real_add;
@@ -652,19 +649,6 @@ gtk_revealer_real_unmap (GtkWidget *widget)
   gtk_revealer_stop_animation (revealer);
 }
 
-static gboolean
-gtk_revealer_real_draw (GtkWidget *widget,
-                        cairo_t   *cr)
-{
-  GtkRevealer *revealer = GTK_REVEALER (widget);
-  GtkRevealerPrivate *priv = gtk_revealer_get_instance_private (revealer);
-
-  if (gtk_cairo_should_draw_window (cr, priv->bin_window))
-    GTK_WIDGET_CLASS (gtk_revealer_parent_class)->draw (widget, cr);
-
-  return GDK_EVENT_PROPAGATE;
-}
-
 /**
  * gtk_revealer_set_reveal_child:
  * @revealer: a #GtkRevealer
index bc5f459cc95b25d126777ae88d059d8d636ed69d..9744a9888000951b5d4306d85ff01e3917368abd 100644 (file)
@@ -1973,20 +1973,14 @@ gtk_scrolled_window_render (GtkCssGadget *gadget,
   GtkScrolledWindow *scrolled_window = GTK_SCROLLED_WINDOW (widget);
   GtkScrolledWindowPrivate *priv = scrolled_window->priv;
 
-  if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)))
-    {
-      if (priv->hscrollbar_visible &&
-          priv->vscrollbar_visible)
-        gtk_scrolled_window_draw_scrollbars_junction (scrolled_window, cr);
-    }
+  if (priv->hscrollbar_visible &&
+      priv->vscrollbar_visible)
+    gtk_scrolled_window_draw_scrollbars_junction (scrolled_window, cr);
 
   GTK_WIDGET_CLASS (gtk_scrolled_window_parent_class)->draw (widget, cr);
 
-  if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)))
-    {
-      gtk_scrolled_window_draw_undershoot (scrolled_window, cr);
-      gtk_scrolled_window_draw_overshoot (scrolled_window, cr);
-    }
+  gtk_scrolled_window_draw_undershoot (scrolled_window, cr);
+  gtk_scrolled_window_draw_overshoot (scrolled_window, cr);
 
   return FALSE;
 }
index e79056d2bd64826c92f7b3169de805186f0d2d64..610b2f6239976664322d991991f6d9bb3cfd2f8b 100644 (file)
@@ -2024,8 +2024,7 @@ gtk_stack_draw_slide (GtkWidget *widget,
   GtkStack *stack = GTK_STACK (widget);
   GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
 
-  if (priv->last_visible_surface &&
-      gtk_cairo_should_draw_window (cr, priv->view_window))
+  if (priv->last_visible_surface)
     {
       GtkAllocation allocation;
       int x, y;
@@ -2078,10 +2077,9 @@ gtk_stack_draw_slide (GtkWidget *widget,
       cairo_restore (cr);
      }
 
-  if (gtk_cairo_should_draw_window (cr, priv->bin_window))
-    gtk_container_propagate_draw (GTK_CONTAINER (stack),
-                                  priv->visible_child->widget,
-                                  cr);
+  gtk_container_propagate_draw (GTK_CONTAINER (stack),
+                                priv->visible_child->widget,
+                                cr);
 }
 
 static gboolean
@@ -2108,19 +2106,15 @@ gtk_stack_render (GtkCssGadget *gadget,
   GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
   GtkStack *stack = GTK_STACK (widget);
   GtkStackPrivate *priv = gtk_stack_get_instance_private (stack);
+  GtkStyleContext *context;
   cairo_t *pattern_cr;
 
-  if (gtk_cairo_should_draw_window (cr, priv->view_window))
-    {
-      GtkStyleContext *context;
-
-      context = gtk_widget_get_style_context (widget);
-      gtk_render_background (context,
-                             cr,
-                             0, 0,
-                             gtk_widget_get_allocated_width (widget),
-                             gtk_widget_get_allocated_height (widget));
-    }
+  context = gtk_widget_get_style_context (widget);
+  gtk_render_background (context,
+                         cr,
+                         0, 0,
+                         gtk_widget_get_allocated_width (widget),
+                         gtk_widget_get_allocated_height (widget));
 
   if (priv->visible_child)
     {
@@ -2153,8 +2147,7 @@ gtk_stack_render (GtkCssGadget *gadget,
           switch (priv->active_transition_type)
             {
             case GTK_STACK_TRANSITION_TYPE_CROSSFADE:
-             if (gtk_cairo_should_draw_window (cr, priv->bin_window))
-               gtk_stack_draw_crossfade (widget, cr);
+             gtk_stack_draw_crossfade (widget, cr);
               break;
             case GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT:
             case GTK_STACK_TRANSITION_TYPE_SLIDE_RIGHT:
@@ -2170,15 +2163,14 @@ gtk_stack_render (GtkCssGadget *gadget,
             case GTK_STACK_TRANSITION_TYPE_UNDER_DOWN:
             case GTK_STACK_TRANSITION_TYPE_UNDER_LEFT:
             case GTK_STACK_TRANSITION_TYPE_UNDER_RIGHT:
-             if (gtk_cairo_should_draw_window (cr, priv->bin_window))
-               gtk_stack_draw_under (widget, cr);
+             gtk_stack_draw_under (widget, cr);
               break;
             default:
               g_assert_not_reached ();
             }
 
         }
-      else if (gtk_cairo_should_draw_window (cr, priv->bin_window))
+      else
         gtk_container_propagate_draw (GTK_CONTAINER (stack),
                                       priv->visible_child->widget,
                                       cr);
index f21ed3138c7c68f1ed956e7aa7402ae0e2a29c4b..7f4f79a19c6d2af142f8d390c7d96c982f032ac4 100644 (file)
@@ -5881,27 +5881,24 @@ paint_border_window (GtkTextView     *text_view,
                      GtkStyleContext *context)
 {
   GdkWindow *window;
+  gint w, h;
+
 
   if (text_window == NULL)
     return;
 
   window = gtk_text_view_get_window (text_view, text_window->type);
-  if (gtk_cairo_should_draw_window (cr, window))
-    {
-      gint w, h;
+  w = gdk_window_get_width (window);
+  h = gdk_window_get_height (window);
 
-      gtk_style_context_save_to_node (context, text_window->css_node);
+  gtk_style_context_save_to_node (context, text_window->css_node);
 
-      w = gdk_window_get_width (window);
-      h = gdk_window_get_height (window);
-
-      cairo_save (cr);
-      gtk_cairo_transform_to_window (cr, GTK_WIDGET (text_view), window);
-      gtk_render_background (context, cr, 0, 0, w, h);
-      cairo_restore (cr);
+  cairo_save (cr);
+  gtk_cairo_transform_to_window (cr, GTK_WIDGET (text_view), window);
+  gtk_render_background (context, cr, 0, 0, w, h);
+  cairo_restore (cr);
 
-      gtk_style_context_restore (context);
-    }
+  gtk_style_context_restore (context);
 }
 
 static gboolean
@@ -5924,15 +5921,13 @@ gtk_text_view_draw (GtkWidget *widget,
 
   window = gtk_text_view_get_window (GTK_TEXT_VIEW (widget),
                                      GTK_TEXT_WINDOW_TEXT);
-  if (gtk_cairo_should_draw_window (cr, window))
-    {
-      DV(g_print (">Exposed ("G_STRLOC")\n"));
 
-      cairo_save (cr);
-      gtk_cairo_transform_to_window (cr, widget, window);
-      draw_text (widget, cr); 
-      cairo_restore (cr);
-    }
+  DV(g_print (">Exposed ("G_STRLOC")\n"));
+
+  cairo_save (cr);
+  gtk_cairo_transform_to_window (cr, widget, window);
+  draw_text (widget, cr); 
+  cairo_restore (cr);
 
   paint_border_window (GTK_TEXT_VIEW (widget), cr, priv->left_window, context);
   paint_border_window (GTK_TEXT_VIEW (widget), cr, priv->right_window, context);
index 0e4ab4e9c6e8c0ed7cbe1581a7213646c7ec97df..d1c4847b1326c6c0d31b713878e2eae05580c1ad 100644 (file)
@@ -5362,37 +5362,36 @@ gtk_tree_view_draw (GtkWidget *widget,
                     cairo_t   *cr)
 {
   GtkTreeView *tree_view = GTK_TREE_VIEW (widget);
-  GtkWidget   *button;
+  GtkWidget *button;
   GtkStyleContext *context;
+  GList *list;
 
   context = gtk_widget_get_style_context (widget);
 
-  if (gtk_cairo_should_draw_window (cr, tree_view->priv->bin_window))
-    {
-      GList *tmp_list;
+  gtk_render_background (context, cr,
+                         0, 0,
+                         gtk_widget_get_allocated_width (widget),
+                         gtk_widget_get_allocated_height (widget));
 
-      cairo_save (cr);
+  cairo_save (cr);
 
-      gtk_cairo_transform_to_window (cr, widget, tree_view->priv->bin_window);
-      gtk_tree_view_bin_draw (widget, cr);
+  gtk_cairo_transform_to_window (cr, widget, tree_view->priv->bin_window);
+  gtk_tree_view_bin_draw (widget, cr);
 
-      cairo_restore (cr);
+  cairo_restore (cr);
 
-      /* We can't just chain up to Container::draw as it will try to send the
-       * event to the headers, so we handle propagating it to our children
-       * (eg. widgets being edited) ourselves.
-       */
-      tmp_list = tree_view->priv->children;
-      while (tmp_list)
-        {
-          GtkTreeViewChild *child = tmp_list->data;
-          tmp_list = tmp_list->next;
+  /* We can't just chain up to Container::draw as it will try to send the
+   * event to the headers, so we handle propagating it to our children
+   * (eg. widgets being edited) ourselves.
+   */
+  for (list = tree_view->priv->children; list; list = list->next)
+    {
+      GtkTreeViewChild *child = list->data;
 
-          gtk_container_propagate_draw (GTK_CONTAINER (tree_view), child->widget, cr);
-        }
+      gtk_container_propagate_draw (GTK_CONTAINER (tree_view), child->widget, cr);
     }
-  else if (tree_view->priv->drag_highlight_window &&
-           gtk_cairo_should_draw_window (cr, tree_view->priv->drag_highlight_window))
+  
+  if (tree_view->priv->drag_highlight_window)
     {
       GdkRGBA color;
 
@@ -5417,39 +5416,26 @@ gtk_tree_view_draw (GtkWidget *widget,
         }
       cairo_restore (cr);
     }
-  else
-    {
-      gtk_render_background (context, cr,
-                             0, 0,
-                             gtk_widget_get_allocated_width (widget),
-                             gtk_widget_get_allocated_height (widget));
-    }
 
   gtk_style_context_save (context);
   gtk_style_context_remove_class (context, GTK_STYLE_CLASS_VIEW);
 
-  if (gtk_cairo_should_draw_window (cr, tree_view->priv->header_window))
+  for (list = tree_view->priv->columns; list != NULL; list = list->next)
     {
-      GList *list;
-      
-      for (list = tree_view->priv->columns; list != NULL; list = list->next)
-       {
-         GtkTreeViewColumn *column = list->data;
+      GtkTreeViewColumn *column = list->data;
 
-         if (column == tree_view->priv->drag_column)
-           continue;
+      if (column == tree_view->priv->drag_column)
+        continue;
 
-         if (gtk_tree_view_column_get_visible (column))
-           {
-             button = gtk_tree_view_column_get_button (column);
-             gtk_container_propagate_draw (GTK_CONTAINER (tree_view),
-                                           button, cr);
-           }
-       }
+      if (gtk_tree_view_column_get_visible (column))
+        {
+          button = gtk_tree_view_column_get_button (column);
+          gtk_container_propagate_draw (GTK_CONTAINER (tree_view),
+                                        button, cr);
+        }
     }
-  
-  if (tree_view->priv->drag_window &&
-      gtk_cairo_should_draw_window (cr, tree_view->priv->drag_window))
+
+  if (tree_view->priv->drag_window)
     {
       button = gtk_tree_view_column_get_button (tree_view->priv->drag_column);
       gtk_container_propagate_draw (GTK_CONTAINER (tree_view),
index 8360dbab4d0c3e3b259408e2969693f67f106944..40363a8d3ff1227397abb43dd1a864ae63af32e3 100644 (file)
@@ -305,13 +305,8 @@ gtk_viewport_render (GtkCssGadget *gadget,
                      gpointer      data)
 {
   GtkWidget *widget = gtk_css_gadget_get_owner (gadget);
-  GtkViewport *viewport = GTK_VIEWPORT (widget);
-  GtkViewportPrivate *priv = viewport->priv;
 
-  if (gtk_cairo_should_draw_window (cr, priv->bin_window))
-    {
-      GTK_WIDGET_CLASS (gtk_viewport_parent_class)->draw (widget, cr);
-    }
+  GTK_WIDGET_CLASS (gtk_viewport_parent_class)->draw (widget, cr);
 
   return FALSE;
 }
@@ -732,9 +727,7 @@ gtk_viewport_draw (GtkWidget *widget,
   GtkViewport *viewport = GTK_VIEWPORT (widget);
   GtkViewportPrivate *priv = viewport->priv;
 
-  if (gtk_cairo_should_draw_window (cr, gtk_widget_get_window (widget)) ||
-      gtk_cairo_should_draw_window (cr, priv->bin_window))
-    gtk_css_gadget_draw (priv->gadget, cr);
+  gtk_css_gadget_draw (priv->gadget, cr);
 
   return FALSE;
 }
index b5c28d4594a67cfdf3ac3264dc59daf78fa1a78c..9f212fe430c22936fcebc7fd78b988dca5c5ff2b 100644 (file)
@@ -6282,53 +6282,6 @@ gtk_widget_get_renderer (GtkWidget *widget)
   return NULL;
 }
 
-/**
- * gtk_cairo_should_draw_window:
- * @cr: a cairo context
- * @window: the window to check. @window may not be an input-only
- *          window.
- *
- * This function is supposed to be called in #GtkWidget::draw
- * implementations for widgets that support multiple windows.
- * @cr must be untransformed from invoking of the draw function.
- * This function will return %TRUE if the contents of the given
- * @window are supposed to be drawn and %FALSE otherwise. Note
- * that when the drawing was not initiated by the windowing
- * system this function will return %TRUE for all windows, so
- * you need to draw the bottommost window first. Also, do not
- * use “else if” statements to check which window should be drawn.
- *
- * Returns: %TRUE if @window should be drawn
- *
- * Since: 3.0
- */
-gboolean
-gtk_cairo_should_draw_window (cairo_t   *cr,
-                              GdkWindow *window)
-{
-  GdkDrawingContext *context;
-  GdkWindow *tmp;
-
-  g_return_val_if_fail (cr != NULL, FALSE);
-  g_return_val_if_fail (GDK_IS_WINDOW (window), FALSE);
-
-  if (gtk_cairo_is_marked_for_draw (cr))
-    return TRUE;
-
-  context = gdk_cairo_get_drawing_context (cr);
-  if (context == NULL)
-    return TRUE;
-
-  tmp = gdk_drawing_context_get_window (context);
-  if (tmp == NULL)
-    return TRUE;
-
-  while (!gdk_window_has_native (window))
-    window = gdk_window_get_parent (window);
-
-  return tmp == window;
-}
-
 typedef enum {
   RENDER_SNAPSHOT,
   RENDER_DRAW
index 25d6de49c1b7f52e93cf875fc8e0f0cf87b33a54..cea1298db210fdb8597f67900a2de7f08e186e4c 100644 (file)
@@ -1109,9 +1109,6 @@ void       gtk_widget_set_has_tooltip       (GtkWidget   *widget,
 GDK_AVAILABLE_IN_ALL
 gboolean   gtk_widget_get_has_tooltip       (GtkWidget   *widget);
 
-GDK_AVAILABLE_IN_ALL
-gboolean   gtk_cairo_should_draw_window     (cairo_t     *cr,
-                                             GdkWindow   *window);
 GDK_AVAILABLE_IN_ALL
 void       gtk_cairo_transform_to_window    (cairo_t     *cr,
                                              GtkWidget   *widget,
index 68b0c9ecdfbb6a6d94fc4bcf10707841ff2e9d90..dc4ae5e2819775732dce6592e282c5043d8dea86 100644 (file)
@@ -8323,9 +8323,6 @@ layout_draw_handler (GtkWidget *widget, cairo_t *cr)
   layout = GTK_LAYOUT (widget);
   bin_window = gtk_layout_get_bin_window (layout);
 
-  if (!gtk_cairo_should_draw_window (cr, bin_window))
-    return FALSE;
-  
   gdk_window_get_position (bin_window, &x, &y);
   cairo_translate (cr, x, y);